The Transmission Control Protocol (TCP) is the predominant transfer layer protocol used in Internet Protocol (IP) data transmissions. A sending device utilizing TCP retransmits data unless it receives an acknowledgment from the receiving device that the data successfully arrived at the receiving device. TCP also utilizes a handshake to establish the logical end-to-end connection between the communicating devices and views data as a continuous stream. It therefore maintains the sequence in which bytes/octets are sent and received to facilitate this byte-stream characteristic.
TCP uses a slow start process whenever a connection is started or a timeout occurs. It starts with a small data rate to make sure that the connection can accommodate at least a very little amount of data. This is done in order to avoid network congestion. TCP then relies on the rate of arrival of acknowledgement messages to gradually increase its data rate. After sending a window of data, the sending device needs to wait for one round trip time (RTT) before it receives any acknowledgement. Due to large value of RTT, the TCP sending device waits for a long time in slow start phase before it reaches a reasonable throughput.
But in a wireless network, the transmission characteristics of connections can change frequently. The transmission characteristics can change due to movement of a mobile terminal, especially when the receiving device moves from a first cell to a second cell in a cellular based network. Also, the bandwidth in the wireless network is limited and this limited bandwidth is shared among multiple users, and a high bit error rate (or even a lost connection in some circumstances), resulting in a long round trip time (RTT) for the connection (or even timeouts) that require the slow start process to begin again. This means that the rate at which acknowledgement messages are received is very slow. Also, in the network, all the packets for connections which are in slow start phase are queued along with all the other connections. This means that the RTT during slow start has a strong component of the queuing delay coming from other connections.
Several attempts have been made to either increase the data rate at the start of the connection or to reduce RTT of a connection. However, after the slow start phase if the TCP connection has to face the real network conditions (queuing delay, etc) the benefits of expedited slow start are lost and the performance of the connection may not be as good as it is expected to be.